[38;2;249;38;114mval[0m[38;2;248;248;242m x = [0m[38;2;190;132;255m0[0m

[38;2;249;38;114mval[0m[38;2;248;248;242m hello = [0m[38;2;230;219;116m"hello world"[0m

[38;2;249;38;114mval[0m[38;2;248;248;242m id = [0m[38;2;249;38;114mfn[0m[38;2;248;248;242m x [0m[38;2;190;132;255m=>[0m[38;2;248;248;242m x[0m

[38;2;249;38;114mfun[0m[38;2;248;248;242m id' x = x[0m

[38;2;249;38;114mval[0m[38;2;248;248;242m [0m[38;2;190;132;255m()[0m[38;2;248;248;242m = [0m[38;2;249;38;114mprint[0m[38;2;248;248;242m [0m[38;2;230;219;116m"hello world\n"[0m

[38;2;249;38;114mval[0m[38;2;248;248;242m _ = [0m[38;2;249;38;114mlet[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mval[0m[38;2;248;248;242m hello = [0m[38;2;230;219;116m"hello"[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mval[0m[38;2;248;248;242m world = [0m[38;2;230;219;116m"world"[0m
[38;2;249;38;114min[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mprint[0m[38;2;248;248;242m (hello ^ [0m[38;2;230;219;116m" "[0m[38;2;248;248;242m ^ world ^ [0m[38;2;230;219;116m"\n"[0m[38;2;248;248;242m)[0m
[38;2;249;38;114mend[0m

[38;2;249;38;114mfun[0m[38;2;248;248;242m isZero n =[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mif[0m[38;2;248;248;242m n = [0m[38;2;190;132;255m0[0m[38;2;248;248;242m [0m[38;2;249;38;114mthen[0m[38;2;248;248;242m [0m[38;2;249;38;114mtrue[0m
[38;2;248;248;242m  [0m[38;2;249;38;114melse[0m[38;2;248;248;242m [0m[38;2;249;38;114mfalse[0m

[38;2;249;38;114mfun[0m[38;2;248;248;242m isTrue b =[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mcase[0m[38;2;248;248;242m b [0m[38;2;249;38;114mof[0m
[38;2;248;248;242m    [0m[38;2;249;38;114mtrue[0m[38;2;248;248;242m [0m[38;2;190;132;255m=>[0m[38;2;248;248;242m [0m[38;2;249;38;114mtrue[0m
[38;2;248;248;242m  | [0m[38;2;249;38;114mfalse[0m[38;2;248;248;242m [0m[38;2;190;132;255m=>[0m[38;2;248;248;242m [0m[38;2;249;38;114mfalse[0m

[38;2;249;38;114mexception[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mBad_value[0m[38;2;248;248;242m [0m[38;2;249;38;114mof[0m[38;2;248;248;242m [0m[38;2;249;38;114mstring[0m

[38;2;249;38;114mfun[0m[38;2;248;248;242m isTrue' b =[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mcase[0m[38;2;248;248;242m b [0m[38;2;249;38;114mof[0m
[38;2;248;248;242m    [0m[38;2;249;38;114mtrue[0m[38;2;248;248;242m [0m[38;2;190;132;255m=>[0m[38;2;248;248;242m [0m[38;2;249;38;114mtrue[0m
[38;2;248;248;242m  | _    [0m[38;2;190;132;255m=>[0m[38;2;248;248;242m [0m[38;2;249;38;114mraise[0m[38;2;248;248;242m ([0m[3;38;2;166;226;46mBad_value[0m[38;2;248;248;242m [0m[38;2;230;219;116m"value is not true!"[0m[38;2;248;248;242m)[0m

[38;2;249;38;114mval[0m[38;2;248;248;242m alwaysTrue =[0m
[38;2;248;248;242m  isTrue' [0m[38;2;249;38;114mfalse[0m[38;2;248;248;242m [0m[38;2;249;38;114mhandle[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mBad_value[0m[38;2;248;248;242m _ [0m[38;2;190;132;255m=>[0m[38;2;248;248;242m [0m[38;2;249;38;114mtrue[0m

[38;2;249;38;114mdatatype[0m[38;2;248;248;242m myBool = [0m[3;38;2;166;226;46mTrue[0m[38;2;248;248;242m | [0m[3;38;2;166;226;46mFalse[0m

[38;2;249;38;114mdatatype[0m[38;2;248;248;242m shape = [0m[3;38;2;166;226;46mSquare[0m[38;2;248;248;242m [0m[38;2;249;38;114mof[0m[38;2;248;248;242m [0m[38;2;249;38;114mreal[0m[38;2;248;248;242m | [0m[3;38;2;166;226;46mCircle[0m[38;2;248;248;242m [0m[38;2;249;38;114mof[0m[38;2;248;248;242m [0m[38;2;249;38;114mreal[0m[38;2;248;248;242m | [0m[3;38;2;166;226;46mPoint[0m

[38;2;249;38;114msignature[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mFOO[0m[38;2;248;248;242m = [0m[38;2;249;38;114msig[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mval[0m[38;2;248;248;242m foo : 'a [0m[38;2;190;132;255m->[0m[38;2;248;248;242m 'a[0m
[38;2;249;38;114mend[0m

[38;2;249;38;114mstructure[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mFoo[0m[38;2;248;248;242m [0m[38;2;190;132;255m:>[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mFOO[0m[38;2;248;248;242m = [0m[38;2;249;38;114mstruct[0m
[38;2;248;248;242m  [0m[38;2;249;38;114mfun[0m[38;2;248;248;242m foo x = x[0m
[38;2;249;38;114mend[0m
